package com.ngocvo.QuanLyThuChi;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;

public class ListCashFlowAdapter extends ArrayAdapter<CashFlow>{
    ArrayList<CashFlow> array;
    int resource;
    Context context;
    SimpleDateFormat viewDateFormat = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");
    
    public ListCashFlowAdapter(Context context, int textViewResourceId,
            ArrayList<CashFlow> objects) {
        super(context, textViewResourceId, objects);
        this.context = context;
        resource = textViewResourceId;
        array = objects;        
    }    

    //Phương thức xác định View mà Adapter hiển thị, ở đây chính là CustomViewGroup
    //Bắt buộc phải Override khi kế thừa từ ArrayAdapter
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View workView = convertView;
        
        if (workView == null) {
            workView = new CustomViewGroup(getContext());
        }
        
        //Lấy về đối tượng Work hiện tại
        final CashFlow cashFlow = array.get(position);

        if (cashFlow != null) {
            TextView tv_name = ((CustomViewGroup) workView).tv_name;
            TextView tv_amount = ((CustomViewGroup) workView).tv_amount;
            TextView tv_flowDate = ((CustomViewGroup)workView).tv_flowDate;
            TextView tv_status = ((CustomViewGroup)workView).tv_status;
            TextView tv_id = ((CustomViewGroup)workView).tv_id;
            
            //Gán giá trị cho các text view
            tv_name.setText(cashFlow.getName());
            tv_amount.setText(String.valueOf(cashFlow.getAmount()));                        
            tv_flowDate.setText(viewDateFormat.format(cashFlow.getFlowDate()));            
            tv_id.setText(Long.toString(cashFlow.getId()));
                        
            /*Status:
             * -1: Không xác định
             * 0: Chưa trả
             * 1: Đã trả
             */
            switch (cashFlow.getStatus()) {
			case -1:
				tv_status.setText("");
				break;
			case 0:
				tv_status.setText("Chưa trả");
				break;
			case 1:
				tv_status.setText("Đã trả");
				break;
			}            
        }        
        return workView;
    }    
}
